/**
 * @param {array} position
 * @param {array} attr
 * @param {array} service
 *
 */
function add_gdb_Area({ position, attr, service, docLayer, callback }) {
  console.log(position)
  var pointObj = new Array()
  for (let item of position) {
    console.log(item)
    pointObj.push(new Zondy.Object.Point2D(item[0], item[1]))
  }

  console.log(pointObj)
  //构成折线的弧段
  var gArc = new Zondy.Object.Arc(pointObj)
  //构成区要素折线
  var gAnyLine = new Zondy.Object.AnyLine([gArc])
  //构成区要素
  var gRegion = new Zondy.Object.GRegion([gAnyLine])
  //构成区要素的几何信息
  var fGeom = new Zondy.Object.FeatureGeometry({ RegGeom: [gRegion] })

  //设置区要素的图形参数信息
  var cRegionInfo = new Zondy.Object.CRegionInfo({
    EndColor: 1,
    FillColor: 17,
    FillMode: 0,
    OutPenWidth: 1,
    OverMethod: 0,
    PatAngle: 1,
    PatColor: 1,
    PatHeight: 1,
    PatID: 27,
    PatWidth: 1,
  })
  //要素图形参数信息
  var graphicInfo = new Zondy.Object.WebGraphicsInfo({
    InfoType: 3,
    RegInfo: cRegionInfo,
  })
  //设置区要素的属性信息
  var attValue = attr.map((item) => item.value)
  //创建一个新的区要素
  var newFeature = new Zondy.Object.Feature({
    AttValue: attValue,
    fGeom: fGeom,
    GraphicInfo: graphicInfo,
  })
  newFeature.setFType(3)

  //创建一个要素数据集
  var featureSet = new Zondy.Object.FeatureSet()

  var cAttValue = new Zondy.Object.CAttStruct({
    FldNumber: attValue.length,
    FldType: attr.map((item) => item.type),
    FldName: attr.map((item) => item.key),
  })
  featureSet.AttStruct = cAttValue
  featureSet.addFeature(newFeature)
  //创建一个要素编辑服务对象
  var editDocFeature = new Zondy.Service.EditDocFeature(
    service.name,
    service.layerId,
    {
      ip: "localhost",
      port: "6163", //访问IGServer的端口号，.net版为6163，Java版为8089
    }
  )
  editDocFeature.add(featureSet, onPloySuccess(docLayer))
}
//添加区要素回调函数
function onPloySuccess(docLayer) {
  return function (result) {
    if (result) {
      alert("添加面要素成功！")
      docLayer.value.refresh()
    } else {
      alert("添加面要素失败！")
    }
  }
}
export { add_gdb_Area }
